Who are your users?

wheelchair icon accessibility logo deaf symbol

Assistive technology

  • Screen readers
  • Braille display
  • Screen magnifiers
  • Voice control device
  • Built-in, software, hardware
braille reader chromevox logo

How many users?

graph showing the numbers of internet users in different countries vs. the number of internet users with disabilities in the US

Experiencing accessibility

(or otherwise)

ChromeVox

Having trouble? Click here for help

chromevox logo

Accessibility in HTML5

Overview

  • Use clean HTML and use standard tags whenever possible.
  • Provide text alternatives.
  • Manage focus.
  • Add key handlers.
  • Add ARIA for screen readers.

Use clean HTML and use standard tags whenever possible.

Click on this button:
Send

Use clean HTML and use standard tags whenever possible.

Click on this button:

Provide text alternatives

  • Use <label> on form elements.
    <label for="firstname">First name:</label>
    <input type="text" id="firstname"/>
  • Use alt on images.
    • Important images should have descriptive alt text.
      <img src="chart.png" alt="[description]">
    • Decorative images should have blank alt text.
      <img src="bullet35648.gif" alt="">

Provide text alternatives

  • Use aria-label or aria-labelledby to provide text on other elements, or where <label> is insufficient.
    <div tabindex="0" role="button" aria-label="Normal Speed">
    <span id="label1">Delete history after</span>
    <input type="number" id="this" aria-labelledby="label1 this label2">
    <span id="label2">days</span>

Manage focus

Something else:

Manage focus

Something else:

Add key handlers

  • Use javascript event handlers to listen for relevant key events, such as arrow or enter keys.
  • Be sure to set the tabindex as well!
    • tabindex="0" for natural tab order
    • tabindex="1" or similar for manual tab order - be careful!
    • tabindex="-1" for programmatic focus

Add ARIA for screen readers.

  • ARIA = Accessible Rich Internet Applications (WAI = Web Accessibility Initiative)
  • Part of the HTML5 standard
  • Roles, states and properties added as attributes
Something else:

ARIA roles

Click on this button:
Send

A more complex ARIA example

    <div id="stars" class="star_rating" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="5" aria-valuenow="3">...</div>

aria-live

  • For sections of the page which are dynamically updated
  • May be polite or assertive
 
<div id="austen" aria-live="polite"></div>

Finding accessibility problems

Tools

  • Accessibility Dev Tools screenshot

    Accessibility Developer Tools

  • ChromeVox screenshot

    ChromeVox

Accessibility Developer Tools

Category Some things we check for
Labels and Alternative ContentImages and form fields are labeled
Keyboard AccessibilityFocusable UI controls
ARIAValid ARIA roles
Low-vision AccessibilityForeground/background contrast ratio
Video AccessibilityCaptions and fallback content

Demo

Enter your name:

Yes, please add me to your mailing list! You may receive one email per week.

Accessibility Developer Tools & ChromeVox

Both open source. For best results use together.

Resources